local ip = ngx.var.binary_remote_addr
local limit = ngx.shared.limit
local req,_=limit:get(ip)

-- ngx.header['Content-type'] = "application/json"
-- ngx.say('{"code":503}')
-- print(111)
-- ngx.exit(ngx.HTTP_OK)

-- ngx.say(req,"<br/>")
-- 限速功能实现
if req then
    if req > 20 then
        -- ngx.exit(503)
        -- ngx.status = 403;
        -- ngx.exit(ngx.HTTP_OK)
        ngx.header['Content-type'] = "application/json"
        ngx.say('{"code":403,"desc":"请求过快~"}')
        ngx.exit(403)
    else
        limit:incr(ip,1)
    end
else
    limit:set(ip,1,10)
end


math.randomseed( os.time() );
local random=math.random(100000,999999)
local uri = ngx.var.request_uri
local url=''
if ngx.var.args then
    url=ngx.var.scheme.."://"..ngx.var.host..uri.."&jskey="..random
else
    url=ngx.var.scheme.."://"..ngx.var.host..uri.."?jskey="..random
end
local jscode="window.location.href='"..url.."';"
ngx.say(jscode)

-- 验证部分，24行中的3600表示验证通过后，白名单时间为3600秒，即1小时

-- local jsjump = ngx.shared.jsjump
-- local uri = ngx.var.request_uri
-- local jspara,flags=jsjump:get(ip)
-- local args = ngx.req.get_uri_args()
-- if jspara then
--     if flags then
--         ngx.exec("@cc")
--     else 
--         local p_jskey=''
--         if args["jskey"] and type(args["jskey"])=='table' then
--             p_jskey=args["jskey"][table.getn(args["jskey"])]
--         else
--             p_jskey=args["jskey"]
--         end 
--         if p_jskey and p_jskey==tostring(jspara) then
--             jsjump:set(ip,jspara,3600,1)
--             ngx.exec("@cc")
--         else
--             local url=''
--             if ngx.var.args then
--                    url=ngx.var.scheme.."://"..ngx.var.host..uri.."&jskey="..jspara
--             else
--                    url=ngx.var.scheme.."://"..ngx.var.host..uri.."?jskey="..jspara
--             end
--             local jscode="window.location.href='"..url.."';"
--             ngx.say(jscode)
--         end
--     end
-- else
--     math.randomseed( os.time() );
--     local random=math.random(100000,999999)
--     jsjump:set(ip,random,60)
--     local url=''
--     if ngx.var.args then
--         url=ngx.var.scheme.."://"..ngx.var.host..uri.."&jskey="..random
--     else
--         url=ngx.var.scheme.."://"..ngx.var.host..uri.."?jskey="..random
--     end
--     local jscode="window.location.href='"..url.."';"
--     ngx.say(jscode)
-- end